home *** CD-ROM | disk | FTP | other *** search
/ PC World 2002 September / PCWorld_2002-09_cd.bin / Software / Vyzkuste / httrack / httrack-3.20RC4.exe / {app} / src / htsglobal.h < prev    next >
C/C++ Source or Header  |  2002-07-09  |  7KB  |  326 lines

  1. /* ------------------------------------------------------------ */
  2. /*
  3. HTTrack Website Copier, Offline Browser for Windows and Unix
  4. Copyright (C) Xavier Roche and other contributors
  5.  
  6. This program is free software; you can redistribute it and/or
  7. modify it under the terms of the GNU General Public License
  8. as published by the Free Software Foundation; either version 2
  9. of the License, or any later version.
  10.  
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with this program; if not, write to the Free Software
  18. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  19.  
  20.  
  21. Important notes:
  22.  
  23. - We hereby ask people using this source NOT to use it in purpose of grabbing
  24. emails addresses, or collecting any other private information on persons.
  25. This would disgrace our work, and spoil the many hours we spent on it.
  26.  
  27.  
  28. Please visit our Website: http://www.httrack.com
  29. */
  30.  
  31.  
  32. /* ------------------------------------------------------------ */
  33. /* File: Global #define file                                    */
  34. /* Author: Xavier Roche                                         */
  35. /* ------------------------------------------------------------ */
  36.  
  37. // Fichier rΘunissant l'ensemble des defines
  38.  
  39. #ifndef HTTRACK_GLOBAL_DEFH
  40. #define HTTRACK_GLOBAL_DEFH
  41.  
  42. // Version
  43. #define HTTRACK_VERSION      "3.20RC4"
  44. #define HTTRACK_VERSIONID    "3.20.00"
  45. #define HTTRACK_AFF_VERSION  "3.x"
  46. //#define HTTRACK_AFF_WARNING  "This is a RELEASE CANDIDATE version of WinHTTrack Website Copier 3.0\nPlease report us any bug or problem"
  47.  
  48.  
  49.  
  50. // DΘfinition plate-forme
  51. #include "htssystem.h"
  52. #include "htsconfig.h"
  53.  
  54. // Socket windows ou socket unix
  55. #if HTS_PLATFORM==1
  56. #define HTS_WIN 1
  57. #else
  58. #define HTS_WIN 0
  59. #endif
  60.  
  61. // compatibilitΘ DOS
  62. #if HTS_WIN
  63. #define HTS_DOSNAME 1
  64. #else
  65. #define HTS_DOSNAME 0
  66. #endif
  67.  
  68. // utiliser zlib?
  69. #if HTS_USEZLIB
  70. #else
  71. #ifdef _WINDOWS
  72. #define HTS_USEZLIB 1
  73. #endif
  74. #endif
  75.  
  76. #ifndef HTS_INET6
  77. #define HTS_INET6 0
  78. #endif
  79.  
  80. // utiliser openssl?
  81. #ifndef HTS_USEOPENSSL
  82. #define HTS_USEOPENSSL 1
  83. #endif
  84.  
  85. #if HTS_WIN
  86. #else
  87. #define __cdecl
  88. #endif
  89.  
  90. /*
  91. #if HTS_XGETHOST
  92. #if HTS_PLATFORM==1
  93. #ifndef __cplusplus
  94. #undef HTS_XGMETHOD
  95. #undef HTS_XGETHOST
  96. #endif
  97. #endif
  98. #else
  99. #undef HTS_XGMETHOD
  100. #undef HTS_XGETHOST
  101. #endif
  102. */
  103.  
  104.  
  105. #if HTS_ANALYSTE
  106. #else
  107. #if HTS_WIN
  108. #else
  109. #undef HTS_ANALYSTE
  110. // Analyste
  111. #define HTS_ANALYSTE 1
  112. #define HTS_ANALYSTE_CONSOLE 1
  113. #endif
  114. #endif
  115.  
  116.  
  117. /* rc file */
  118. #if HTS_WIN
  119. #define HTS_HTTRACKRC "httrackrc"
  120. #else
  121.  
  122. #ifndef HTS_ETCPATH
  123. #define HTS_ETCPATH "/etc"
  124. #endif
  125. #ifndef HTS_BINPATH
  126. #define HTS_BINPATH "/usr/bin"
  127. #endif
  128. #ifndef HTS_LIBPATH
  129. #define HTS_LIBPATH "/usr/lib"
  130. #endif
  131. #ifndef HTS_PREFIX
  132. #define HTS_PREFIX "/usr"
  133. #endif
  134.  
  135. #define HTS_HTTRACKRC ".httrackrc"
  136. #define HTS_HTTRACKCNF HTS_ETCPATH"/httrack.conf"
  137. #define HTS_HTTRACKDIR HTS_PREFIX"/doc/httrack/"
  138.  
  139. #endif
  140.  
  141. /* Gestion des tables de hashage */
  142. #define HTS_HASH_SIZE 20147
  143. /* Taille max d'une URL */
  144. #define HTS_URLMAXSIZE 512
  145. /* Taille max ligne de commande (>=HTS_URLMAXSIZE*2) */
  146. #define HTS_CDLMAXSIZE 1024
  147. /* Copyright (C) Xavier Roche and other contributors */
  148. #define HTTRACK_AFF_AUTHORS "[XR&CO'2002]"
  149. #define HTS_DEFAULT_FOOTER "<!-- Mirrored from %s%s by HTTrack Website Copier/"HTTRACK_AFF_VERSION" "HTTRACK_AFF_AUTHORS", %s -->"
  150. #define HTS_UPDATE_WEBSITE "http://www.httrack.com/update.php3?Product=HTTrack&Version="HTTRACK_VERSIONID"&VersionStr="HTTRACK_VERSION"&Platform=%d&Language=%s"
  151.  
  152. #define H_CRLF "\x0d\x0a"
  153. #define CRLF   "\x0d\x0a"
  154. #if HTS_WIN
  155. #define LF "\x0d\x0a"
  156. #else
  157. #define LF "\x0a"
  158. #endif
  159.  
  160. /* Θquivaut α "paramΦtre vide", par exemple -F (none) */
  161. #define HTS_NOPARAM "(none)"
  162. #define HTS_NOPARAM2 "\"(none)\""
  163.  
  164. /* maximum et minimum */
  165. #define maximum(A,B) ( (A) > (B) ? (A) : (B) )
  166. #define minimum(A,B) ( (A) < (B) ? (A) : (B) )
  167.  
  168. /* chaine vide? */
  169. #define strnotempty(A) (((A)[0]!='\0') ? 1 : 0)
  170.  
  171. /* optimisation inline si possible */
  172. #ifdef __cplusplus
  173. #define HTS_INLINE inline
  174. #else
  175. #define HTS_INLINE
  176. #endif
  177.  
  178. #ifdef HTS_NO_64_BIT
  179. #define HTS_LONGLONG 0
  180. #else
  181. #define HTS_LONGLONG 1
  182. #endif
  183.  
  184. // long long int? (or int)
  185. // (and int cast for system functions like malloc() )
  186. #if HTS_LONGLONG
  187.  #if HTS_WIN
  188.   typedef __int64 LLint;
  189.   typedef __int64 TStamp;
  190.   typedef int INTsys;
  191.   #define LLintP "%I64d"
  192.  #else
  193.   typedef long long int LLint;
  194.   typedef long long int TStamp;
  195.   typedef int INTsys;
  196.   #define LLintP "%Ld"
  197.  #endif
  198. #else
  199.  typedef int LLint;
  200.  typedef int INTsys;
  201.  typedef double TStamp;
  202.  #define LLintP "%d"
  203. #endif
  204.  
  205. /* Alignement */
  206. #ifndef HTS_ALIGN
  207. #define HTS_ALIGN 4
  208. #endif
  209.  
  210. /* IPV4, IPV6 and various unified structures */
  211. #define HTS_MAXADDRLEN 64
  212.  
  213. #if HTS_WIN
  214. #else
  215. #define __cdecl 
  216. #endif
  217.  
  218. /* mode pour mkdir ET chmod (accΦs aux fichiers) */
  219. #define HTS_PROTECT_FOLDER (S_IRUSR|S_IWUSR|S_IXUSR)
  220. #if HTS_ACCESS
  221. #define HTS_ACCESS_FILE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
  222. #define HTS_ACCESS_FOLDER (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
  223. #else
  224. #define HTS_ACCESS_FILE (S_IRUSR|S_IWUSR)
  225. #define HTS_ACCESS_FOLDER (S_IRUSR|S_IWUSR|S_IXUSR)
  226. #endif
  227.  
  228. /* vΘrifier la dΘclaration des variables prΘprocesseur */
  229. #ifndef HTS_DOSNAME
  230. #error | HTS_DOSNAME Has not been defined.
  231. #error | Set it to 1 if you are under DOS, 0 under Unix.
  232. #error | Example: place this line in you source, before includes:
  233. #error | #define HTS_DOSNAME 0
  234. #error
  235. #error
  236. #endif
  237. #ifndef HTS_ACCESS
  238. /* Par dΘfaut, accΦs α tous les utilisateurs */
  239. #define HTS_ACCESS 1
  240. #endif
  241.  
  242. /* fflush sur stdout */
  243. #define io_flush { fflush(stdout); fflush(stdin); }
  244.  
  245.  
  246.  
  247. /* HTSLib */
  248.  
  249. // Cache DNS, accΘlΦre les rΘsolution d'adresses
  250. #define HTS_DNSCACHE 1
  251.  
  252. // ID d'une pseudo-socket locale pour les file://
  253. #define LOCAL_SOCKET_ID -500000
  254.  
  255. // taille de chaque buffer (10 sockets 650 ko)
  256. #define TAILLE_BUFFER 65535
  257.  
  258. #if HTS_WIN
  259. #else
  260. // use pthreads.h
  261. #ifdef HTS_DO_NOT_USE_PTHREAD
  262. #define USE_PTHREAD 0
  263. #else
  264. #define USE_PTHREAD 1
  265. #endif
  266. #endif
  267.  
  268. #if HTS_WIN
  269. #define USE_BEGINTHREAD 1
  270. #else
  271. #if USE_PTHREAD
  272. #define USE_BEGINTHREAD 1
  273. #else
  274. /* sh*t.. */
  275. #define USE_BEGINTHREAD 0
  276. #endif
  277. #endif
  278.  
  279. /* ------------------------------------------------------------ */
  280. /* Debugging                                                    */
  281. /* ------------------------------------------------------------ */
  282.  
  283. // dΘbuggage types
  284. #define DEBUG_SHOWTYPES 0
  285. // backing debug
  286. #define BDEBUG 0
  287. // chunk receive
  288. #define CHUNKDEBUG 0
  289. // realloc links debug
  290. #define MDEBUG 0
  291. // cache debug
  292. #define DEBUGCA 0
  293. // DNS debug
  294. #define DEBUGDNS 0
  295. // savename debug
  296. #define DEBUG_SAVENAME 0
  297. // debug robots
  298. #define DEBUG_ROBOTS 0
  299. // debug hash
  300. #define DEBUG_HASH 0
  301. // VΘrification d'intΘgritΘ
  302. #define DEBUG_CHECKINT 0
  303. // nbr sockets debug
  304. #define NSDEBUG 0
  305. // tracer mallocs
  306. #define HTS_TRACE_MALLOC 0
  307.  
  308. // dΘbuggage HTSLib
  309. #define HDEBUG 0
  310. // surveillance de la connexion
  311. #define CNXDEBUG 0
  312. // debuggage cookies
  313. #define DEBUG_COOK 0
  314. // dΘbuggage hard..
  315. #define HTS_WIDE_DEBUG 0
  316. // debuggage deletehttp et cie
  317. #define HTS_DEBUG_CLOSESOCK 0
  318. // debug tracage mΘmoire
  319. #define MEMDEBUG 0
  320.  
  321. // htsmain
  322. #define DEBUG_STEPS 0
  323.  
  324. #endif
  325.  
  326.